右腕の先を回転させる体操
SET WINDOW 0,600,600,0
OPTION ANGLE DEGREES
10 for i=0 to 200
12 IF i<100 THEN GOTO 16
14 LET p=200-i
GOTO 18
16 LET p=i
18 CLEAR
REM atama
30 DRAW circle WITH SCALE (20)*SHIFT(300,80+p)
REM sebone
40 PLOT LINES : 300,100+p;300,225+p
50 DRAW disk WITH SCALE (10)*SHIFT(300,225+p)
REM kosibone
60 PLOT LINES:300,225+p; 300,265+p
REM kotsuban
70 PLOT LINES : 260,265+p;340,265+p
DRAW disk WITH SCALE(10)*SHIFT(260,265+p)
80 DRAW disk WITH SCALE(10)*SHIFT(340,265+p)
REM migi-asi
100 PLOT LINES: 340,265+p;350+p/3,360
DRAW disk WITH SCALE(10)*SHIFT(350+p/3,360)
110 PLOT LINES: 350+p/3,360;360,450
DRAW disk WITH SCALE(10)*SHIFT(360,450)
REM hidari-asi
130 PLOT LINES: 260,265+p;250-p/3,360
DRAW disk WITH SCALE(10)*SHIFT(250-p/3,360)
140 PLOT LINES: 250-p/3,360;240,450
DRAW disk WITH SCALE (10)*SHIFT(240,450)
REM kata
200 PLOT LINES: 250,140+p;350,140+p
DRAW disk WITH SCALE(10)*SHIFT(250,140+p)
210 DRAW disk WITH SCALE(10)*SHIFT(350,140+p)
REM migi-ude
220 PLOT LINES: 350,140+p;355+p/2,205+p
DRAW disk WITH SCALE (10)*SHIFT(355+p/2,205+p)
230 PLOT LINES: 355+p/2,205+p;360+p*COS(p),270-p*SIN(p)/8
DRAW disk WITH SCALE(10)*SHIFT(360+p*COS(p),270-p*SIN(p)/8)
REM hidari-ude
240 PLOT LINES: 250,140+p; 245-p/2,205+p
DRAW disk WITH SCALE(10)*SHIFT(245-p/2,205+p)
260 PLOT LINES: 245-p/2,205+p;240-p/2,270-p/4
DRAW disk WITH SCALE(10)*SHIFT(240-p/2,270-p/4)
WAIT DELAY 0.02
300 NEXT i
400 GOTO 10
END
改良版:俳句生成プログラム
X軸方向の移動。JとLのキーを使う。
ランダム関数による宇宙
SET WINDOW 0,500,0,500
DECLARE EXTERNAL PICTURE ball
OPTION ANGLE DEGREES
set AREA COLOR 1
PLOT AREA: 0,0 ; 500 ,0 ;500,500;0,500
10 FOR t=1 TO 500
RANDOMIZE
LET m1=1+INT(500*RND)
LET n1=1+INT(500*RND)
LET s1=0.005+(0.05*RND)
DRAW ball WITH ROTATE(0)*SCALE(s1)*SHIFT(m1,n1)
NEXT t
END
100 EXTERNAL PICTURE ball
FOR d=1 TO 30 STEP 1
SET COLOR MIX(4)1,1,1
SET LINE COLOR 4
SET LINE WIDTH 1
DRAW circle WITH SCALE(30-d)*SHIFT(d/2,d/2)
NEXT d
150 END PICTURE
課題
1 フローチャートを書く。
2 フローチャートをプログラム化する。
3 プログラムで図形と文字を組み合わせた画面を描く。
成人知能テストのプログラム(90点満点)
LET sum=0
サンプル プログラム
グラスゴー コーマ スケール
SET WINDOW 0,500,0,500
CLEAR
10 PLOT TEXT ,AT 50,450 : "*開眼について"
PLOT TEXT ,AT 50,400 : "1自発的に開眼する"
PLOT TEXT ,AT 50,350 : "2呼びかけで開眼する"
PLOT TEXT ,AT 50,300 : "3痛み刺激を与えると開眼する"
PLOT TEXT ,AT 50,250 : "4開眼しない"
20 INPUT PROMPT "該当する番号を入力する":a
IF a=1 THEN
LET m=4
elseif a=2 THEN
LET m=3
ELSEIF a=3 THEN
LET m=2
ELSEIF a=4 THEN
LET m=1
ELSE
GOTO 20
END IF
CLEAR
30 PLOT TEXT ,AT 50,450 : "*言語反応について"
PLOT TEXT ,AT 50,400 : "1見当識の保たれた会話"
PLOT TEXT ,AT 50,350 : "2会話に混乱がある"
PLOT TEXT ,AT 50,300 : "3混乱した単語のみ"
PLOT TEXT ,AT 50,250 : "4理解不能の音声のみ"
PLOT TEXT ,AT 50,200 : "5なし"
40 INPUT PROMPT "該当する番号を入力する":a
IF a=1 THEN
LET n=5
elseif a=2 THEN
LET n=4
ELSEIF a=3 THEN
LET n=3
ELSEIF a=4 THEN
LET n=2
ELSEIF a=5 THEN
LET n=1
ELSE
GOTO 40
END IF
clear
50 PLOT TEXT ,AT 50,450 : "*運動反応について"
PLOT TEXT ,AT 50,400 : "1命令に従う"
PLOT TEXT ,AT 50,350 : "2合目的な運動をする"
PLOT TEXT ,AT 50,300 : "3逃避反応としての運動"
PLOT TEXT ,AT 50,250 : "4異常な屈曲反応"
PLOT TEXT ,AT 50,200 : "5伸展反応"
PLOT TEXT ,AT 50,150 : "6全く動かない"
60 INPUT PROMPT "該当する番号を入力する":a
IF a=1 THEN
LET o=6
elseif a=2 THEN
LET o=5
ELSEIF a=3 THEN
LET o=4
ELSEIF a=4 THEN
LET o=3
ELSEIF a=5 THEN
LET o=2
ELSEIF a=6THEN
LET o=1
ELSE
GOTO 60
END IF
CLEAR
LET s=m+n+o
LET m$=STR$(m)
LET n$=STR$(n)
LET o$=STR$(o)
LET s$=STR$(s)
PLOT TEXT ,AT 50,350 : "開眼は"+m$+"点,"+"言語反応は"+n$+"点,"+"運動反応は"+o$+"点"
PLOT TEXT ,AT 50,300 : "合計点は"&s$&"点"
PLOT TEXT ,AT 50,250 : "15点は正常 8点以下は重症 3点は深昏睡"
200 END
職業適性
10 INPUT PROMPT "やりがいのある仕事がしたい。YESは1。NOは0。":a
IF a=1 THEN
GOTO 20
ELSE
GOTO 50
END IF
20 INPUT PROMPT "パソコンを自由に使える。YESは1。NOは0。":a
IF a=1 THEN
GOTO 30
ELSE
GOTO 50
END IF
30 INPUT PROMPT "美的なセンスがある。YESは1。NOは0。":a
IF a=1 THEN
GOTO 40
ELSE
GOTO 70
END IF
40 PRINT "ウェブデザイナーを目指そう。"
GOTO 200
50 INPUT PROMPT "収入はできるだけ多い方がよい。YESは1。NOは0。":a
IF a=1 THEN
GOTO 60
ELSE
GOTO 90
END IF
60 INPUT PROMPT "体だけは丈夫である。YESは1。NOは0。":a
IF a=1 THEN
GOTO 70
ELSE
GOTO 100
END IF
70 INPUT PROMPT "結構強引な性格である。YESは1。NOは0。":a
IF a=1 THEN
GOTO 80
ELSE
GOTO 110
END IF
80 PRINT "第一線の営業マンにチャレンジしよう。"
GOTO 200
90 PRINT "フリーターで自由に生きよう。"
GOTO 200
100 PRINT "各種公務員を目指そう。"
GOTO 200
110 PRINT "福祉関係の仕事を目指そう。"
200 END
◎組み合わせの例
10 SET WINDOW 0,500,0,500
OPTION ANGLE DEGREES
SET TEXT COLOR 5
SET TEXT ANGLE 70
SET TEXT FONT "ヒラギノ明朝 Pro",40
PLOT TEXT ,AT 50,200 : "川"
PLOT TEXT ,AT 150,150 : "川"
PLOT TEXT ,AT 250,100 : "川"
PLOT TEXT ,AT 350,80 : "川"
PLOT TEXT ,AT 450,50 : "川"
SET TEXT COLOR 2
SET TEXT ANGLE 0
SET TEXT FONT "游ゴシック Light",30
PLOT TEXT ,AT 50,350 : "雨"
PLOT TEXT ,AT 80,250 : "雨"
PLOT TEXT ,AT 250,450 : "雨"
PLOT TEXT ,AT 450,150 : "雨"
SET TEXT COLOR 255
SET TEXT ANGLE 300
SET TEXT FONT "クレー",150
PLOT TEXT ,AT 150,300 : "風"
END
月齢
DECLARE EXTERNAL PICTURE moon
OPTION ANGLE DEGREES
LET m=0
20 SET WINDOW 0,300,0,300
DATA 0,5,10,15,25,40,80,1000,1900,1920,1930,1960,1980,1990,2000,2000,2010,2020,2030,2040,2070,3000,-80,-40,-25,-15,-10,-5,0
READ c
LET m=m+1
IF m= 29 THEN goto 400
FOR ti=1 TO 1000000
NEXT ti
SET AREA COLOR 1
PLOT AREA: 0,0;300,0 ;300,300;0,300
IF c>1000 THEN GO TO 100
IF c>2000 THEN GO TO 200
IF c<0 THEN GO TO 300
GOTO 80
80 DRAW moon(c)WITH ROTATE(0)*SCALE(1)*SHIFT(0,0)
GOTO 20
100 LET c=c-1000
DRAW moon2(c)WITH ROTATE(0)*SCALE(1)*SHIFT(0,0)
GOTO 20
200 LET c=c-2000
DRAW moon2(c) WITH ROTATE(180)*SCALE(1)*SHIFT(0,0)
GOTO 20
300 DRAW moon(c) WITH ROTATE(0)*SCALE(1)*SHIFT(0,0)
GOTO 20
400 RESTORE
LET m=0
GOTO 20
END
EXTERNAL PICTURE moon(c)
SET AREA COLOR 1
PLOT AREA: 0,0;300,0 ;300,300;0,300
SET COLOR 1
SET LINE WIDTH 150
DRAW circle WITH SCALE (70)*SHIFT (150,150)
REM SET AREA STYLE "HATCH"
REM SET AREA STYLE INDEX 5
SET COLOR "yellow"
DRAW disk WITH SCALE (49)*SHIFT (150,150)
REM SET AREA STYLE "SOLID"
SET COLOR 1
DRAW disk WITH SCALE (SQR(c^2+50^2))*SHIFT (150-c,150)
END PICTURE
EXTERNAL PICTURE moon2(c)
LET c=c-1000
SET COLOR 1
DRAW disk WITH SCALE (50)*SHIFT (150,150)
SET COLOR "yellow"
DRAW disk WITH SCALE (SQR(c^2+50^2))*SHIFT (150-c,150)
SET COLOR 1
SET LINE WIDTH 150
DRAW circle WITH SCALE (86)*SHIFT (150,150)
PLOT AREA:0,300;0,200;300,200;300,300
PLOT AREA:0,100;0,0;300,0;300,100
PLOT AREA:0,300;0,0;80,0;80,300
PLOT AREA:220,300;220,0;300,0;300,300
END PICTURE